package com.pig.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.pig.pojo.goods.Goods;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

import java.util.List;
import java.util.Map;

@Mapper
public interface GoodsDao extends BaseMapper<Goods> {

    /**
     * 通过title查找相关数据条数
     *
     * @param title
     * @param categoryId
     * @return
     */
    int findGoodsCount(@Param("title") String title, @Param("categoryId") Integer categoryId);

    /**
     * 根据名字查询所有的商品，如果有名字则是根据名字查询，没有则是查询全部
     *
     * @param title     名字
     * @param pageIndex 跳过的页码
     * @param pageSize  每页的数据
     * @param categoryId
     * @return Goods集合
     */
    List<Goods> findGoodsByTitle(@Param("title") String title, @Param("pageIndex") Integer pageIndex, @Param("pageSize") Integer pageSize, @Param("status") Integer status, @Param("categoryId") Integer categoryId);

    /**
     * 通过goodsId查找具体的商品信息
     * 具体适用在用户点开商品与进行商品的修改
     * @param goodsId
     * @return
     */
    Map<String,Object> findGoodsById(Integer goodsId);

    @Update("update p_goods set status = #{status} where id = #{goodsId}")
    int setGoodsStatus(Integer goodsId, Integer status);

    List<Goods> findRandomGoods();

    int decreaseGoodsNum(Integer goodsId, Integer goodsNum);
}
